package cn.lingyangwl.agile.model.utils;

import cn.lingyangwl.agile.model.constants.*;
import cn.lingyangwl.agile.model.enums.*;
import cn.lingyangwl.agile.model.module.tenant.*;

/**
 * @author shenguangyang
 */
public class ConfigUtils {
    public static String getCacheKey(ConfigDefineEnum configDefine) {
        return getTargetTenantId(configDefine) + ":" + configDefine.name();
    }

    public static String getTargetTenantId(ConfigDefineEnum configDefine) {
        String tenantId = TenantContext.get().getTenantId();
        if (configDefine.getIsolateLevel() == DataIsolateLevel.MAIN) {
            tenantId = TenantContext.get().getMainTenantId();
        } else if (configDefine.getIsolateLevel() == DataIsolateLevel.ALONE) {
            tenantId = TenantContext.get().getTenantId();
        } else if (configDefine.getIsolateLevel() == DataIsolateLevel.MGT) {
            tenantId = TenantContext.get().getMgtSceneTenantId();
        }
        return tenantId;
    }
}
